Skip to content

Feature/lab6#1216

Open
RusKudinov wants to merge 9 commits into
inno-devops-labs:mainfrom
RusKudinov:feature/lab6
Open

Feature/lab6#1216
RusKudinov wants to merge 9 commits into
inno-devops-labs:mainfrom
RusKudinov:feature/lab6

Conversation

@RusKudinov

Copy link
Copy Markdown

Goal

Реализация Lab 6: Dockerize QuickNotes с многостадийной сборкой, compose, healthcheck, persistent volume и security hardening.

Changes

  • Добавлен app/Dockerfile — многостадийная сборка на основе golang:1.24-alpine и distroless/static:nonroot, финальный образ 16.8 МБ (≤ 25 МБ).
  • Добавлен compose.yaml — сервис quicknotes с портом 8080, именованным томом для /data, healthcheck через busybox wget, переменными окружения и политикой перезапуска.
  • Применены 6 security defaults:
    • USER 65532 (nonroot)
    • read_only: true + tmpfs для временных файлов
    • cap_drop: ALL
    • no-new-privileges: true
    • образ distroless/static (без шелла)
    • сканирование Trivy (0 HIGH/CRITICAL на уровне ОС)
  • Добавлен submissions/lab6.md с полным отчётом, скриншотами и ответами на вопросы.

Testing

  • Проверен размер образа: docker images quicknotes:lab6 → 16.8 МБ.
  • Проверен эндпоинт /health: curl.exe http://localhost:8080/health{"notes":0,"status":"ok"}.
  • Протестирован persistence:
    • создана заметка через POST,
    • после docker compose down и up заметка сохранилась,
    • после docker compose down -v и up данные исчезли.
  • Проверены security-настройки:
    • docker inspect показывает User: 65532, CapDrop: [ALL], SecurityOpt: [no-new-privileges:true].
    • попытка exec sh и touch /etc/test завершились ошибками.
  • Запущен Trivy: aquasec/trivy:0.59.1 — на уровне ОС уязвимостей нет, в Go-библиотеке stdlib найдены 13 HIGH (исправлены в новых версиях Go, не влияют на сдачу).
  • Все выводы и скриншоты приложены в submissions/lab6.md.

Checklist

  • Title ≤ 70 символов
  • Коммиты подписаны (git log --show-signature) — если подписывал, иначе убери галочку или оставь как есть
  • submissions/lab6.md обновлён

Signed-off-by: Руслан Кудинов <r.kudinov@innopolis.university>
Signed-off-by: Руслан Кудинов <r.kudinov@innopolis.university>
Signed-off-by: Руслан Кудинов <r.kudinov@innopolis.university>
Signed-off-by: Руслан Кудинов <r.kudinov@innopolis.university>
Signed-off-by: Руслан Кудинов <r.kudinov@innopolis.university>
Signed-off-by: Руслан Кудинов <r.kudinov@innopolis.university>
Signed-off-by: Руслан Кудинов <r.kudinov@innopolis.university>
Signed-off-by: Руслан Кудинов <r.kudinov@innopolis.university>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants